package cn.edu.cug.cs.gtl.apis.ui;

import cn.edu.cug.cs.gtl.apis.render.Render;

import javax.swing.*;
import java.awt.*;

public abstract class AbstractFrame extends JFrame {
    protected AbstractApplication theApp=null;
    protected TablePanel tablePanel = null;
    protected ProjectPanel projectPanel = null;
    protected RenderPanel renderPanel = null;
    protected DevicePanel devicePanel = null;

    protected CatalogPanel catalogPanel = null;

    public AbstractFrame() throws HeadlessException {
    }

    public AbstractFrame(GraphicsConfiguration gc) {
        super(gc);
    }

    public AbstractFrame(String title) throws HeadlessException {
        super(title);
    }

    public AbstractFrame(String title, GraphicsConfiguration gc) {
        super(title, gc);
    }

    public TablePanel getTablePanel() {
        return tablePanel;
    }

    public ProjectPanel getProjectPanel(){
        return this.projectPanel;
    }

    public RenderPanel getRenderPanel() {
        return renderPanel;
    }

    public DevicePanel getDevicePanel() {
        return devicePanel;
    }

    public CatalogPanel getCatalogPanel() {
        return catalogPanel;
    }

    public abstract Render getCurrentRender();

    public abstract JMenu getFileMenu();
    public abstract JMenu getEditMenu();
    public abstract JMenu getViewMenu();
    public abstract JMenu getToolMenu();
    public abstract JMenu getHelpMenu();

    public abstract JToolBar getFileToolBar();
    public abstract JToolBar getViewToolBar();
    public abstract JToolBar getEditToolBar();
    public abstract JToolBar getToolToolBar();
    public abstract JToolBar getHelpToolBar();


}
